import pytest


@pytest.fixture(scope="session")
def setup_test_environment():
    # 测试环境初始化
    print("\nSetting up test environment...")
    # 可以添加数据库连接、文件准备等操作

    # 返回测试数据或资源
    test_data = {
        "valid_user": {"username": "testuser", "password": "testpass"},
        "invalid_user": {"username": "wrong", "password": "wrong"}
    }

    yield test_data  # 提供给测试函数使用的测试数据

    # 测试结束后的清理工作
    print("\nTearing down test environment...")
    # 可以添加关闭数据库连接、清理临时文件等操作


@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport(item, call):
    """
    捕获测试执行结果并添加到报告中
    """
    outcome = yield
    report = outcome.get_result()

    # 可以添加自定义报告逻辑，如记录失败测试的截图等
    if report.outcome == 'failed':
        print(f"\nTest failed: {item.name}")